package LUCKY.Android.DataAccess;


import LUCKY.Android.Util.FunctionsUtil;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.SQLException;
import android.util.Log;

public class USUARIOTable  extends DataTableGIM {
	
	public static final String DATABASE_TABLE = "usuario";
	public static final String KEY_ROWID = "_id";
	public static final String KEY_ID="ID";
	public static final String KEY_USUARIO="USER";
	public static final String KEY_NIVEL = "NIVEL";

	public static final String KEY_NOMBRE = "NOMBRE";
	public static final String KEY_DESCRIPCION="DESCRIPCION";
	public static final String KEY_PERFIL="PERFIL";
	//public static final String KEY_OPERARIO = "OPERARIO";
	//public static final String KEY_CAMPOS_CHEKM_VALOR = "CAMPOS_CHEKM_VALOR";
	public static final String KEY_AUTO_ACTUALIZACION = "AUTO_ACTUALIZACION";
	public static final String KEY_DOCENWEB = "DOCENWEB";
	//public static final String KEY_HORAS_RETORNO_ANDROID = "HORAS_RETORNO_ANDROID";
	public static final String KEY_NOMBREPERFIL="NOMBREPERFIL";
	
	private static final String TAG = "USUARIOTable";
	 static final String DATABASE_TABLE_INDICE = "indice_usuario";
	  private DatabaseHelper mDbHelper;
	 
	  

	  /**
	   * Database creation sql statement
	  */
	  static final String DATABASE_CREATE = 
			"create table if not exists " + DATABASE_TABLE + " (" + KEY_ROWID + " integer primary key autoincrement, " 
													+ KEY_ID + " integer, "
													+ KEY_USUARIO + " text, " 
													+ KEY_NIVEL + " integer, "
													+ KEY_NOMBRE + " text, " 
													+ KEY_DESCRIPCION + " text, "
													+ KEY_PERFIL + " integer, " 
														
																+ KEY_AUTO_ACTUALIZACION + " integer, " 
																	+ KEY_DOCENWEB + " integer, " 
																+ KEY_NOMBREPERFIL + " text )"; 
													
	  												
	 
	  
	  
	  static final String DATABASE_INDICE = 
				" CREATE INDEX if not exists " +DATABASE_TABLE_INDICE+ " on " + DATABASE_TABLE + " (" + KEY_USUARIO + " );";
		  							

	  
	  public USUARIOTable(Context ctx) {
		  mDbHelper = new DatabaseHelper(ctx);
	  }
	 
	  public void open() throws SQLException {
	    mDb = mDbHelper.getWritableDatabase();
	    
	  }

	  
	  public void close() {
		    mDbHelper.close();
		  }
		 

	  
//INSERTAR EN SQLITE	  
	  public long create(int id,String usuario, int nivel, String nombre, String descripcion, int perfil
			 ,int auto_actualizacion , int docenweb, String nombreperfil) {
Log.i(TAG, "Inserting record...");
ContentValues initialValues = new ContentValues();
initialValues.put(KEY_ID, id);
initialValues.put(KEY_USUARIO, usuario);
initialValues.put(KEY_NIVEL, nivel);
initialValues.put(KEY_NOMBRE, nombre);
initialValues.put(KEY_DESCRIPCION, descripcion);
initialValues.put(KEY_PERFIL, perfil);
//initialValues.put(KEY_OPERARIO, operario);
//initialValues.put(KEY_CAMPOS_CHEKM_VALOR, campos_chekm_valor);
initialValues.put(KEY_AUTO_ACTUALIZACION, auto_actualizacion);
initialValues.put(KEY_DOCENWEB, docenweb);
initialValues.put(KEY_NOMBREPERFIL, nombreperfil);
//initialValues.put(KEY_HORAS_RETORNO_ANDROID, hora_retorno);

return mDb.insert(DATABASE_TABLE, null, initialValues);
}
	  
	  
	  public Cursor fetchAllINICIOOFFLINE( String usuario, int operario , String orderby) throws SQLException {
		  
		  String cols = FunctionsUtil.obtenerColumnas(mDb ,DATABASE_TABLE,false);
			
			String sql="select " + cols + " from usuario where " + KEY_USUARIO+" = '" +usuario +"'" ;
			
			
			Cursor mCursor = mDb.rawQuery(sql, null);  
		  
	  if (mCursor != null) {
	  	mCursor.moveToFirst();
	  }
	  return mCursor;
		  }
	
	  
	  
	  public Cursor fetchAllINICIO( int id, String usuario, int perfil , String orderby) throws SQLException {
			  
		  String cols = FunctionsUtil.obtenerColumnas(mDb ,DATABASE_TABLE,false);
			
			String sql="select " + cols + " from usuario where " + KEY_ID +" = "  + id +" and " +KEY_USUARIO+" = '" +usuario +"' and " +KEY_PERFIL+" = " +perfil  ;
			
			Cursor mCursor = mDb.rawQuery(sql, null);  
		  
	  if (mCursor != null) {
	  	mCursor.moveToFirst();
	  }
	  return mCursor;
			  
	  }
	   
	  
	  
	  
		  
		  public boolean delete(String id) {
			    return mDb.delete(DATABASE_TABLE, KEY_ID + "=" + id, null) > 0;
			  }
			  
			  public boolean deleteAll() {
				    return mDb.delete(DATABASE_TABLE, null, null) > 0;
			  }
			 
			  public Cursor fetchAll() {
			 
			    return mDb.query(DATABASE_TABLE, new String[] {KEY_ROWID,KEY_ID,KEY_USUARIO,KEY_NIVEL,KEY_NOMBRE,KEY_DESCRIPCION,KEY_PERFIL, KEY_AUTO_ACTUALIZACION,KEY_DOCENWEB, KEY_NOMBREPERFIL}, null, null, null, null, null);
			  }
	  
			  public Cursor fetch(int id) throws SQLException {
				    Cursor mCursor =
				      mDb.query(true, DATABASE_TABLE, new String[] {KEY_ROWID,KEY_ID,KEY_USUARIO,KEY_NIVEL,KEY_NOMBRE,KEY_DESCRIPCION,KEY_PERFIL, KEY_AUTO_ACTUALIZACION,KEY_DOCENWEB, KEY_NOMBREPERFIL}, KEY_ID + "=" + id, null,
				          null, null, null, null);
				    if (mCursor != null) {
				      mCursor.moveToFirst();
				    }
				    return mCursor;
				 
				  }
			  
			  
			  
			
	  
			  public boolean updateautoactualizacion(int id,int autoactualizacion) {
					ContentValues args = new ContentValues();
					
					args.put(KEY_AUTO_ACTUALIZACION, autoactualizacion);
					return mDb.update(DATABASE_TABLE, args, KEY_ID + "=" + id, null) > 0;
			  }
		
			  public boolean updateautodocweb(int id,int hora_) {
					ContentValues args = new ContentValues();
					
					args.put(KEY_DOCENWEB, hora_);
					return mDb.update(DATABASE_TABLE, args, KEY_ID + "=" + id, null) > 0;
			  }

}
